#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
// #include <stropts.h>
#include <time.h>
#include <strings.h>
#include <string.h>
#include <sys/ipc.h>
#include <sys/msg.h>

struct msg {
    long msg_types;
    char msg_buf[511];
};

int main (void) {
    int qid, pid, len;
    struct msg pmsg;
    sprintf ( pmsg.msg_buf, "Hello! This is :%d\n\0", getpid());
    len = strlen ( pmsg.msg_buf );
    
    if ( (qid = msgget( IPC_PRIVATE, IPC_CREAT | 0666)) < 0 ) {
        perror( "msgget");
        exit (1);
    }
    
    if ( (msgsnd(qid, &pmsg, len, 0)) < 0) {
        perror("msgsnd");
        exit(1);
    }
    
    printf("Send a message to the queue successfully : %d\n", qid);
    exit(1);
}